package models

// WkbGroupChatMessage 聊天内容
type WkbGroupChatMessage struct {
	Model
	GroupId       string   `gorm:"column:group_id;" json:"group_id"`                                                 //
	FromUserID    string   `gorm:"column:from_user_id;type:varchar(64);not null" json:"from_user_id"`                // 发送用户 Id
	ToUserID      string   `gorm:"index:to_user_id;column:to_user_id;type:varchar(64);not null" json:"to_user_id"`   // 目标 Id
	WkbGroup      WkbGroup `gorm:"association_foreignkey:to_user_id;foreignkey:group_id" json:"wkb_group_list"`      // 群聊
	ObjectName    string   `gorm:"column:object_name;type:varchar(64);not null" json:"object_name"`                  // 消息类型 文本消息 RC:TxtMsg 、 图片消息 RC:ImgMsg 、语音消息 RC:VcMsg 、图文消息 RC:ImgTextMsg 、位置消息 RC:LBSMsg 、添加联系人消息 RC:ContactNtf 、提示条通知消息 RC:InfoNtf 、资料通知消息 RC:ProfileNtf 、通用命令通知消息 RC:CmdNtf
	ContentText   string   `gorm:"column:content_text;type:text" json:"content_text"`                                // 消息内容
	Extra         string   `gorm:"column:extra_msg;type:varchar(500)" json:"extra_msg"`                              // 消息额外信息
	ChannelType   string   `gorm:"column:channel_type;type:varchar(64);not null" json:"channel_type"`                // 会话类型
	MsgTimestamp  string   `gorm:"column:msg_timestamp;type:varchar(64);not null" json:"msg_timestamp"`              // 服务端收到客户端发送消息时的服务器时间（1970年到现在的毫秒数）
	MsgUId        string   `gorm:"unique;index:idx_msguid;column:msg_uid;type:varchar(128);not null" json:"msg_uid"` // 可通过 msgUID 确定消息唯一
	SensitiveType int      `gorm:"column:sensitive_type;type:tinyint(4)" json:"sensitive_type"`                      // 消息中是否含有敏感信息，0 为不包含，1 为含有屏蔽敏感词，2 为含有替换敏感词
	Source        string   `gorm:"column:source;type:varchar(64)" json:"source"`                                     // 标识消息的发送源头
	Status        int      `gorm:"column:status" json:"status"`                                                      // 消息状态（1 已发送；2 已完成；3 已取消，非消息发送失败；4 已失效，非消息发送失败）
	//文字
	Content string `gorm:"column:content;type:varchar(500)" json:"content"` // 内容
	//图片
	//Content       string `json:"content" form:"content"` // 内容
	ImageUri string `gorm:"column:imageUri" json:"imageUri" ` //链接地址
	H        int    `gorm:"column:h" json:"h" `               //高
	W        int    `gorm:"column:w" json:"w" `               //宽
	//语音
	RemoteUrl string `gorm:"column:remoteUrl" json:"remoteUrl" ` //链接地址
	Duration  int    `gorm:"column:duration" json:"duration" `   //时间
	//文件
	FileUrl string `gorm:"column:fileUrl" json:"fileUrl" ` //链接地址
	Name    string `gorm:"column:name" json:"name" `       //文件名称
	Size    int    `gorm:"column:size" json:"size" `       //大小
	Type    string `gorm:"column:types" json:"type" `      //文件格式
	//
	HiddenUserId  string `gorm:"column:hidden_user_id" json:"hidden_user_id" ` //
	CurrentStatus int    `gorm:"column:current_status" json:"current_status" `
}

func (w *WkbGroupChatMessage) TableName() string {
	return "wkb_im_group_chat_message"
}
